The following functions are useful in update map expressions (e.g. update block conditions and mapping expressions).
fn-bea:coalesce($arg ... as xdt:anyAtomicType) as xdt:anyAtomicType?
The function fn-bea:coalesce takes 1 or more arguments and returns the first that is not empty.
fn-bea:coalesce-equal($arg ... as xdt:anyAtomicType) as xdt:anyAtomicType?
The function fn-bea:coalesce-equal takes 1 or more arguments and returns the first that is not empty. If any of its non empty arguments are not equal then it will throw an exception at runtime. (see also How to update a foreign key values mapped using fn-bea:coalesce-equal)
fn-bea:value($arg as item()?) as xdt:anyAtomicType?
The function fn-bea:value is essentially the same as fn:data except that it additionally indicates to the Oracle Data Service Integrator runtime that the variable $arg may bind to a changed-element() depending on the context (like in the case of an update procedure driven by the update map). As a general rule, fn-bea:value should always be used in place of fn:data in update map expressions since they should be written to support all three flavors of update procedures (create, update, and delete).
fn-bea:ambiguous($arg ... as xdt:anyAtomicType) as xdt:anyAtomicType?
The function fn-bea:ambiguous may appear in the default update map when there are multiple target values (on the right) that map to the same source value (on the left). For example, if the same value is projected (i.e. returned) more than once in the primary read function, this may result in fn-bea:ambiguous being used in the corresponding update map by default. It is expected that the user will manually remove the call to fn-bea:ambiguous when resolving the ambiguous mapping. For example, the user may choose to pick one of the arguments in the fn-bea:ambiguous call to be the new mapping expression and disregard the others.
Document generated by Confluence on Jan 13, 2009 15:57